# docker network
管理网络,包括创建,查看,列表,删除,移除,连接和断开
# 1 网络命令汇总
docker network create
docker network rm
docker network connect
docker network disconnect
docker network ls
docker network inspect
docker network prune
# 2 网络命令详解
# 2.1 docker network create
格式
# 创建一个网络 # docker network create [OPTOINS] NETWORK docker run --itd --network=mynet busybox # --specify advanced options docker network create --driver bridge --subnet 192.168.100.0/24 my_br0 docker network create \ --driver bridge \ --subnet 172.27.0.0/16 \ -ip-range 172.27.5.0/24 \ --gateway 172.27.5.254 \ my_br0 # docker network create \ -d overlay \ --subnet 192.168.10.0/25 \ --subnet 192.168.20.0/25 \ --gateway 192.168.10.100 \ --gateway 192.168.20.100 \ --aux-address "my-router=192.168.10.5" \ --aux-address "my-switch=192.168.10.6" \ --aux-address "my-printer=192.168.20.5" \ --aux-address "my-nas=192.168.20.6" \ my-multihost-network # Network ingress mode docker network create -d overlay \ --subnet=10.11.0.0/16 \ --ingress \ --opt com.docker.network.driver.mtu=9216 \ --opt encrypted=true \ my-ingress-network
选项
--attachable
启动手动容器附件--aux-address
网络驱动程序使用辅助的IPv4或IPv6.--config-from
从其中复制配置的网络--config-only
创建仅配置的网络-d,--driver
驱动程序管理网络,默认bridge--gateway
IPv4或IPv6的子网网关--ingress
创建集群路由网状网络--internal
限制外面网络访问--ip-range
从一个子范围分配容器IP--ipm-driver
ip地址管理驱动ipm-opt
设置ip地址管理驱动特定选项--ipv6
启用IPv6网络--label
设置网络的label-o, --opt
设置驱动的特定选项--scope
控制网络的范围--subnet
子网掩码(CICR格式:10.16.0.1/24)
# 2.2 docker network rm
- 格式
# docker network rm NETWORK [NETWORK...]
docker network rm my_br0
docker network rm 3682938cf33 my-network
# 2.3 docker network connect
连接一个容器到网络
- 格式
# docker network connect [OPTIONS] NETWORK CONTAINER
docker run -itd --name container2 --network=multi-host-network busybox
docker network connect --ip 10.10.36.122 multi-host-network container2
docker network connect --link container1:c1 multi-host-network container2
docker network connect --alias db --alias mysql multi-host-network container2
#用了指定ip时,最好用ip-range指定ip范围,确保指定ip不在指定ip范围内,这样不会引起ip冲突
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
docker network connect --ip 172.20.128.2 multi-host-network container2
- 选项
--alias
给容器增加网络范围的别名--driver-opt
网络的驱动选项--ip
IPv4地址(eg,172.18.100.123)--ip6
IPv6地址(eg,2001:db8:33)--link
增加到另一个容器的连接--link-local-ip
给容器增加一个连接本地地址
# 2.4 docker network disconnect
断开一个容器与网络的连接
- 格式
# docker network disconnect [OPTIONS] NETWORK CONTAINER
docker network disconnect multi-host-network container1
- 选项
-f,--force
强制断开容器和网络连接
# 2.5 docker network ls
格式
# docker network ls [OPTIONS] docker network ls docker network ls --no-trunc # filter driver|id|label(label=<key>|label=<key>=<val>)|name|scope(swarm|global|local)|type(custom|builtin) docker network ls --filter driver=bridge docker network ls -f id=63d1ff1f77b docker network ls -f "label=env" docker network ls -f "label=env=dev" docker network ls -f "name=dss_" docker network ls -f scope=swarm docker network ls -f scope=local docker network ls -f type=custom # 有用的使用,批量删除手动创建的network docker network rm `docker network ls -f type=custom -q` # format .ID|.Name|.Driver|.Scope|.IPv6|.Internal|.Labels|.Label|.CreatedAt docker network ls --format "{{.ID}}:{{.Driver}}"
选项
-f,--force
--format
--no-trunc
不截断输出-q,--quiet
只显示IDs
# 2.6 docker network inspect
格式
# docker network inspect [OPTIONS] NETWORK [NETWORK...] docker network inspect my-network
选项
-f,--format
-v,--verbose
# 2.7 docker network prune
移除所有未使用的网络
格式
# docker network prune [OPTIONS] docker network prune # filter until(timestamp)|label(label=<key>|label=<key>=<val>|label!=<key>|label!=<key>=<val>) #移除5小时前创建的网络 docker network prune --force --filter until=5h
选项
--filter
-f,--force
强制执行而不提示确认